﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using Inmobiliaria.Presenters.ViewInterfaces;
using System.Collections.Specialized;
using Inmobiliaria.Presenters.WFPresenters.Recursos;
using Inmobiliaria.Services.Core.DTO;
using Inmobiliaria.UCControllers;
//using System.Windows.Forms;



namespace Inmobiliaria.Presenters.WFPresenters
{
    public class PubliqueParticularPresenter : Presenter
    {
        //private IPersonaFisicaUC personaUC;
        private IViewRegistroParticular viewRegistroParticular;

        public PubliqueParticularPresenter(IViewRegistroParticular view)
            : base(view)
        {
            viewRegistroParticular = view;

        }
        public override void InitView(NameValueCollection queryString)
        { }
        public void RegistroPersona()
        {
            ClassPablo clase = new ClassPablo();
            clase.GuardarPersona(GetPersonaFromViewFields());
            viewRegistroParticular.ShowMessage(Inmobiliaria.Presenters.Mensajes.PersonaInsertadoExitosamente);
            viewRegistroParticular.DeshabilitarCampos();
        }


        public DtoPersona GetPersonaFromViewFields()
        {
            DtoPersona persona = new DtoPersona();
            persona.Vendedor = "PARTICULAR";
            persona.Apellido = viewRegistroParticular.Apellido;
            persona.Nombre = viewRegistroParticular.Nombre;
            persona.CodCelular = viewRegistroParticular.CodCelular;
            persona.Celular = viewRegistroParticular.NumeroCelular;
            persona.CodTelefono = viewRegistroParticular.CodTelefono;
            persona.Telefono = viewRegistroParticular.NumeroTelefono;
            persona.Email = viewRegistroParticular.Email;
            persona.Email2 = viewRegistroParticular.Email2;
            Validar(persona);
            return persona;

        }
        private void Validar(DtoPersona persona)
        {
            StringBuilder errores = new StringBuilder();

            if (String.IsNullOrEmpty(persona.Apellido))
            {
                errores.AppendLine(Recursos.Persona.ApellidoRequerido);
            }

            if (String.IsNullOrEmpty(persona.Nombre))
            {
                errores.AppendLine(Recursos.Persona.NombreRequerido);
            }

            if (persona.CodTelefono.Length > 0 && persona.CodTelefono[0].ToString() == "0")
            {
                errores.AppendLine(Recursos.Persona.CodigoAreaTelefono);

            }
            if (persona.CodTelefono.Length < 2 && persona.CodTelefono.Length != 0)
            {
                errores.AppendLine(Recursos.Persona.CodigoAreaTelefono1);

            }

            if (persona.CodTelefono.Length != 0 && persona.Telefono.Length == 0)
            {
                errores.AppendLine(Recursos.Persona.TelefonoErroneo);

            }

            if (persona.CodCelular.Length > 0 && persona.CodCelular[0].ToString() == "0")
            {
                errores.AppendLine(Recursos.Persona.CodigoAreaCelular);

            }
            if (persona.CodCelular.Length != 0 && persona.Celular.Length != 0 && persona.CodCelular.Length + persona.Celular.Length != 10)
            {
                errores.AppendLine(Recursos.Persona.NumeroCelularErroneo);
            }

            if (persona.CodCelular.Length < 2 && persona.Celular.Length != 0)
            {
                errores.AppendLine(Recursos.Persona.CodigoAreaCelular1);
            }

            if (persona.CodCelular.Length != 0 && persona.Celular.Length == 0)
            {
                errores.AppendLine(Recursos.Persona.NumeroCelularErroneo1);
            }

            if (persona.Email != persona.Email2)
            {
                errores.AppendLine(Recursos.Persona.Email);
            }

            if (!String.IsNullOrEmpty(errores.ToString()))
            {
                throw new ApplicationException(errores.ToString());
            }
        }
    }
}
